while迴圈和for迴圈不一樣的是,for迴圈收集項目的集合,並對集合中的每個項目執行一次程式區塊,而while迴圈在條件為真時會一直不斷地執行
範例如下 :
number = 1
while number < 6 : # 當number<6的時候
print(number) # 印出number
number = number + 1 # number加一後再存回number中
#number = number + 1 也可以寫成 number += 1
上述程式碼的while的迴圈是怎麼跑的呢? 當number=1時進到了while迴圈,當number<6時就進入迴圈,第三行先印出number現在的值,然後進入第四行將number的值加一後,存回原本的number變數中,再回while迴圈判斷number是否<6,如果是就繼續跑迴圈,如果不是就結束迴圈
輸出結果 :
1
2
3
4
5
那如果說我們想要讓使用者自己決定結束的時間呢 ? 這時我們就要定義一個結束值,當使用者輸入結束值時,程式就會結束
break的範例如下 :
text = "enter your name or enter 'quit' to leave the program : "
while True : # 讓迴圈一直執行
name = input(text) # 印出text字串將輸入的值存到name變數中
if name == "quit" : # 當輸入quit時進入if區塊
break # 跳出迴圈
else :
print("Hello,"+name)
輸出結果 :
enter your name or enter 'quit' to leave the program : bonny
Hello,bonny
enter your name or enter 'quit' to leave the program : quit
continue的範例如下 :
number = 0
while number < 10 : # 當number<10就會繼續跑迴圈
number += 1
if number % 3 != 0: # 判斷number是否不能被3整除
continue # 如果不能被3整除就跳回迴圈一開始再加1
print(number) # 如果可以被3整除就印出數字
輸出結果 :
3
6
9
甚麼是無窮迴圈 ? 就是讓迴圈永遠執行就叫無窮迴圈
範例如下 :
x=1
while x< 3: # 當x<3
print(x) # 印出x
輸出結果 :
1
1
1
1
(省略,因為以下都是1)
Sol : 為了避免發生無窮迴圈,請確定程式中至少有個地方是會讓迴圈的條件式變成False或是有條break陳述句可執行
附上排版較精美的
HackMD網址 :https://hackmd.io/YgcrIx5XSbykOzU7x8HA6g?both
資料來源:<<python程式設計的樂趣>>-Eric Matthes著/H&C譯